package JavaCollection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListTraversalRemove {

    static List<String> list;

    static {
        list = new ArrayList<>();
        list.add("100012011");
        list.add("100012012");
        list.add("100012012");
        list.add("100012013");
        list.add("100012014");
        list.add("100012015");
        list.add("100012015");
    }

    // ArrayList 实质 是 数组，删除后 数组平移，size会变化，注意影响
    // 两种方式： 使用迭代器 或 自己控制索引
    public static void main(String[] args) {

        // 方法1： 遍历删除
        for (int i = 0; i < list.size(); i++) {
            String b = list.get(i);
            if( b.equals("100012011"))
            {
                list.remove(i);
                i--;
            }
        }

        System.out.println(list.toString());

        // 方法2：遍历删除
        for (int i = list.size()-1; i >= 0; i--) {
            String b = list.get(i);
            if(b.equals("100012014"))
            {
                list.remove(i);
            }
        }

        System.out.println(list.toString());

        // 方法3：遍历删除， 迭代器实现
        Iterator<String> it = list.iterator();
        while(it.hasNext())
        {
            String b = it.next();
            if(b.equals("100012013"))
            {
                it.remove();
            }
        }
        System.out.println(list.toString());
    }
}
